EXPRESIONES
COMPARTIDAS

“Cada lenguaje es una tradición, cada palabra un símbolo compartido” (Borges)



Definición

Toda expresión del lenguaje, sin excepción, se puede compartir, es decir, que puede pertenecer (ser común) a varias expresiones. Una modalidad de compartición es la autocompartición: cuando una expresión se comparte en su propio contexto.

La especificación de compartición se realiza mediante expresiones genéricas.


Ejemplos
  1. Compartición mediante un nombre.
    Las secuencias x e y comparten la expresión v.

    (v = 11)
    (x = (a ⟨v⟩ b))
    (y = (⟨v⟩ c ⟨v⟩))
    x // ev. (a 11 b)
    y // ev. (11 c 11)

    (v = 99)
    (se cambia v)
    x // ev. (a 99 b)
    (x cambia automáticamente)

    y // ev. (99 c 99)
    (y cambia automáticamente)

  2. Compartición de un elemento de una secuencia.
    Se define el tercer elemento de una secuencia y siempre como el primer elemento de la secuencia x:

    (x = (a b c d))
    (y = (3 7 ⟨x\1⟩ 4 5))

    (el tercer elemento de y es el primero de x)
    y // ev. (3 7 a 4 5)

    (x = (u v w))
    (se cambia x)
    y // ev. (3 7 u 4 5)
    (y cambia automáticamente)

  3. Compartición mutua de elementos entre dos secuencias.

    (x = (a b c ⟨y\1⟩ d))
    (el cuarto elemento de x es el primero de y)

    (y = (3 7 4 5 ⟨x\(x#)⟩))
    (el último elemento de y es el último de x)

    x // ev. (a b c 3 d)
    y // ev. (3 7 4 5 d)

    (x/5 = 55)

    (cambiamos el último elemento de x)
    (y/1= 11)
    (cambiamos el primer elemento de y)

    x // ev. (a b c 11 55)
    (x cambia automáticamente)
    y // ev. (11 7 4 5 55)
    (y cambia automáticamente)

  4. Autocompartición. Unos elementos de una secuencia se definen a partir de otros elementos de la misma secuencia.

    (x = (a b ⟨x\1⟩ ⟨x\2⟩ c))
    (el tercer y cuarto elemento de x es el primero y el segundo, respectivamente, de la misma secuencia)
    x // ev. (a b a b c)

    (x\1 = u)

    (cambiamos el primer elemento de x)
    (x\2 = v)
    (cambiamos el segundo elemento de x)

    x // ev. (u v u v c)
    (x cambia automáticamente)

  5. Autocompartición de varios elementos consecutivos.

    (x = (a b c [⟨x\[1…3]⟩]))
    (los elementos 4, 5 y 6 de x son iguales a los tres primeros)
    x // ev. (a b c a b c)

    (x\1 = u)

    (cambiamos el primer elemento de x)
    (x\2 = v)
    (cambiamos el segundo elemento de x)
    x // ev. (u v c u v c)
    (x cambia automáticamente)

  6. Compartición del contenido de un conjunto.

    (x = {a b c d})
    (y = {u v ⟨x↓⟩})

    (y consta de u, v y el contenido de x)
    y // ev. {u v a b c d}

    (x = {3 4 5 6})

    (se redefine x)
    y // ev. {u v 3 4 5 6}
    (nuevo valor de y)

  7. Compartición de una selección.

    (x = {1 3 5 7 9})
    (y = {u v ⟨x⇓(<6)⟩})

    (y consta de u, v y los elementos menores que 6 de x)
    y // ev. {u v 1 3 5}

    (x = {2 4 6 8})

    (se redefine x)
    y // ev. {u v 2 4}
    (y cambia automáticamente)

  8. Compartición mediante asignación de un nombre a un elemento compartido.

    (x = (a b c d))
    (v = ⟨x\3⟩)

    (v es siempre el tercer elemento de x)
    (y = (3 7 v☆3))
    (y consta de 3, 7 y tres elementos v)
    y // ev. (3 7 c c c)

    (x = (e f g h))

    (se redefine x)
    y // ev. (3 7 g g g)
    (nuevo valor de y)

    (v = ⟨x\4⟩)
    (se redefine v)
    y // ev. (3 7 d d d)
    (nuevo valor de y)

Secuencia circular

Es una secuencia que “se muerde la cola”, es decir, el siguiente elemento del último es el primero. La forma general es:

⟨( x\i = x\(i - i÷(x#)) )⟩

Es decir, siempre se utiliza el resto de la división entre i y la longitud de la secuencia. Por ejemplo,
Estructuras de expresiones compartidas

Mediante la técnica de compartición, es posible definir todo tipo de estructuras. Por ejemplo, si simbolizamos una secuencia por una línea terminada en flecha, y un conjunto por un círculo, podemos especificar estructuras como las siguientes: